package ecmnext.agent.impl;

import ecmnext.agent.Agent;
import ecmnext.agent.*;
import ecmnext.client.ClientCore;

/**
 * <p>Title: ECMNextAgent</p>
 * <p>Description: agent automatique pour ECMNext</p>
 * <p>Copyright: Copyright (c) 2011</p>
 * <p>Company: </p>
 * @author Xuewen YANG ET Antoine COUDERC
 * @version 0.1
 */

public class BasicAgent extends Agent {

  public BasicAgent(long pauseDuration) {
    super(pauseDuration);
  }

  protected void experimentStarting() {
    ECMAgentApps.getLogger().info("Experiment starting");
    super.experimentStarting();

  }

  protected void experimentEnding() {
    ECMAgentApps.getLogger().info("Experiment ending");
    super.experimentEnding();
  }

  protected void periodStarting() {
    ECMAgentApps.getLogger().info("period starting");
  }

  protected void periodEnding() {
    ECMAgentApps.getLogger().info("period ending");
  }

  /**
   * Cette methode sera appel?par la boucle d'execution(chaque
   * seconde jusqu'a ce que l'etat de l'experience change)  si l'experience
   * n'a pas encore ete lancee.
   */
  protected void runExperimentOff() {
    ECMAgentApps.getLogger().info("Experiment is off.");
  }

  /**
   * Cette methode sera appelee par la boucle d'execution sans fin (chaque
   * seconde jusqu'a ce que l'etat de l'experience change) si l'experience
   * a ete lance, et entre deux periodes.
   */
  protected void runExperimentOnPeriodOff() {
    ECMAgentApps.getLogger().info("Experiment is on. Period is off.");
  }

  /**
   * Cette methode sera appelee par la boucle d execution sans fin (chaque
   * seconde jusqu'a ce qye l'etat de l'experience change) si l'experience
   * a ete lance, et au curs d'une periode de jeu.
   */
  protected void runExperimentOnPeriodOn() {
    ECMAgentApps.getLogger().info("Experiment is on. Period is on.");
  }
}
